http://myblog-erp.blogspot.tw/2014/06/blog-post_28.html
軟體品質,好大的題目,涵蓋範圍很廣,校長(*3)書讀得不多,只是想說要如何可以降低或減少程式發佈後的臭蟲問題。
製造業的品質管理以運用統計學的MIL-STD-105E抽樣檢驗,或是SPC統計製程控制的方法為主,這些方法基本上運用在大量生產上,以抽樣的方式監控品質;而運用於軟體的CMMI能力成熟度模型整合,則著重在一個過程改進的方法。
那我們談到大家較熟悉的單元測試、整合測試、功能測試…等等,基本上還是用製造業『測試』的概念,但是軟體並非是大量生產的東西,每一支程式都有它的獨特性,也都只生產(撰寫)一次,檢驗項目難訂也訂不完。單單程式的邊際測試(*1)項目訂都訂不完了,如此盲測(*2)猶如盲人摸象大海撈針,如何可以在浩瀚宇宙中找到小蟲?
假如程式不是用Code Testing的,而是用Code Review的呢?製造業的產品用分厘卡來測物品是不是在對的尺寸範圍,又機器大量生產有其慣性,所以輔以抽樣方法來監控品質;但每一支程式是獨一無二的,程式不會故障也不需要破壞性試驗,那剩下最簡單又有效率的品管方式是不是Code Review,而單元測試、整合測試…等等,反而不會是軟體品質管制的主角。
製造業談品管發展三段論:品質是『檢查』出來的、到品質是『製造』出來的、再到品質是『設計』出來的,這個完全適用於軟體業,程式有臭蟲不應該是品管部門的責任,強化設計部門與製造部門的責任,有助於降低或減少程式交付後的臭蟲問題。
_________________________________________________
軟體系統的設計目的,是為了達到某個特定的目標或滿足需求,尤其是企業內部運作的軟體更是如此,所以我在職涯負責的軟體都是依照預定的實體流程去制定測試程序與項目。
例如,實體流程的步驟拆解會有50個系統程序,那麼在交付使用者測試前軟體品質控制的測試項目就會包含:
而交付給使用者測試後,通常又會產生新的測試項目,包含:
然後設計成checklist逐項驗證,只要確實執行通常80-90%的問題都可以被發現。
很可惜我合作的軟體廠商大多並未執行嚴謹的品質驗證與控制,因此把關的重要性就更是嚴肅的問題,若是把關不嚴,輕則系統不穩,重則造成資料錯誤使公司損失或營運停擺,不可不慎...